插件开发(小工具)
插件平台(plugin)运行纯 JS 函数:你提交一段无依赖的 JavaScript 函数,用户在前端填表单参数,平台在沙箱里执行并返回结果。适合编码/文本/格式转换/计算类小工具。
插件模型
| 字段 | 说明 | ||
|---|---|---|---|
code | 唯一标识(text-reverse 风格) | ||
name / description | 名称与描述(支持 8 语言 name_json) | ||
icon / color | 市场卡片外观 | ||
input_schema | JSON Schema 表单定义(字段、标签、必填) | ||
inline_fn / src | 执行代码(纯函数,沙箱运行) | ||
execution | hosted(托管沙箱)/ iframe / remote | ||
free_daily_calls | 每日免费次数 | ||
categories | 分类标签(如 text encrypt json) |
执行函数约定
函数接收一个 input 对象(表单字段值),返回结果对象:
// 示例:文本反转
function (input) {
var s = String(input.text || '');
return { result: s.split('').reverse().join('') };
}
多行文本处理:
function (input) {
var lines = String(input.text || '').split(/\r?\n/);
lines.sort();
return { result: lines.join('\n') };
}
输入 Schema 示例
{
"type": "object",
"properties": {
"text": {
"type": "string",
"title": "文本",
"widget": "textarea",
"labels": { "en": "Text", "cn": "文本", "tw": "文字", "jp": "テキスト" }
}
},
"required": ["text"]
}
调用 API
GET /plugin/v1/plugins?lang=cn&category=text # 市场列表(公开)
GET /plugin/v1/plugins/{code} # 详情
POST /plugin/v1/plugins/{code}/run
body: { "input": { "text": "hello" } }
运行响应:
{ "ok": true, "output": { "result": "olleh" }, "calls_used": 1, "quota": { "daily": 100, "remaining": 99 } }
限额与防刷
- 匿名访客按 IP 哈希生成伪用户(不落库原始 IP),各自独立额度桶;
- 每日免费次数在插件配置中设定;超出返回
QUOTA_EXCEEDED; - 平台级可调限流(默认 200 QPS)。
三种执行模式
| 模式 | 适用 | 说明 | ||
|---|---|---|---|---|
hosted | 纯计算/文本/编码 | 平台沙箱执行,最安全 | ||
iframe | 交互型 UI | 内嵌演示页(画布/编辑器/调色) | ||
remote | 需要外部服务 | 转码/OCR/AI(接 API 桥) |
bejson 采集的 555 个工具中,约 279 个属 hosted 纯 JS 可直接仿做——官方已批量上线 121 个(text/enc/json/convert/unit/life/gen 等),其余按批次推进。